package org.ailoli.aixiang.utils

import android.content.Context
import okhttp3.internal.toHexString

class CabinetUtils {

    companion object {
        var byteOpenDoor = byteArrayOf(
            0x55.toByte(),
            0x01.toByte(),
            0xB1.toByte(),
            0x05.toByte(),
            0xDC.toByte()
//            0x3C.toByte()
        )

        var byteGetDoor = byteArrayOf(
            0x55.toByte(),
            0x01.toByte(), // 箱门号
            0xA2.toByte(),
            0x00.toByte(),
            0x00.toByte()
//            0xF6.toByte() // 异或校验和
        // 板子回复 55 01 A2 30 7F F6
        //                     7F 是关门状态，70 是开门状态
        )
        var byteCloseDoor = byteArrayOf(
            0x55.toByte(),
            0x01.toByte(), // 箱门号
            0xB2.toByte(), // B1 正转，B2 反转
            0x05.toByte(), // 时间高位
            0xDC.toByte() // 时间低位
//            0x3F.toByte() // 异或校验和
        )

        var byteB8 = byteArrayOf(
            0x55.toByte(),
            0x55.toByte(),
            0x01.toByte(), // 仓门
            0x03.toByte(),
            0x00.toByte(),
            0xB8.toByte(), // 功能码
            0x00.toByte(),
            0x09.toByte()
        )

        fun getOepnDoorCommond (boxId: Int): ByteArray {
            var byteArray = byteOpenDoor
            byteArray [1] = boxId.toHexString().toByte()
            var commond = Utils.ByteArrToHex(byteArray) + Utils.Byte2Hex(Utils.getXor(byteArray))
            byteArray = Utils.HexToByteArr(commond)!!
            return byteArray
        }

        fun getCloseDoorCommond (boxId: Int): ByteArray {
            var byteArray = byteCloseDoor
            byteArray [1] = boxId.toHexString().toByte()
            var commond = Utils.ByteArrToHex(byteArray) + Utils.Byte2Hex(Utils.getXor(byteArray))
            byteArray = Utils.HexToByteArr(commond)!!
            return byteArray
        }

        fun getB8Commond (boxId: Int): ByteArray {
            var byteArray = byteB8
            byteArray[2] = boxId.toHexString().toByte()
            val mingl = Utils.ByteArrToHex(byteArray) + Utils.Byte2Hex(Utils.getXor(byteArray))
            byteArray = Utils.HexToByteArr(mingl)!!
            return byteArray
        }
    }
}